// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Начните играть в онлайн-казино Pin Up Com прямо сейчас! – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Начните играть в онлайн-казино Pin Up Com прямо сейчас!
Title tag is an important part of SEO for a website. It is the text that appears in the search engine results as the clickable headline for a given result and is used to describe the content of the webpage. The title tag should be relevant to the content of the webpage, include important keywords, and be compelling enough to encourage users to click on it.
In this case, the title tag is written in Russian and is designed to attract users from Uzbekistan who are searching for online casinos. The keyword pin up com играть в казино онлайн is included in the title tag, which will help the webpage to rank higher in search engine results for this query. The title tag is also written in a way that is designed to be compelling and encourage users to click on the result.
It is important to note that the title tag is just one part of a successful SEO strategy. Other important factors include the content of the webpage, the use of keywords throughout the webpage, and the overall design and usability of the website. By optimizing all of these factors, it is possible to improve the search engine ranking of a website and attract more visitors.

Начните играть в онлайн-казино Pin Up Com сейчас: все об азартных играх

Начните играть в онлайн-казино Pin Up Com сейчас и откройте для себя увлекательный мир азартных игр. Мы предлагаем широкий выбор игровых автоматов, рулетки, покера и многих других игр. В нашем казино вы найдете все необходимое для увлекательного досуга и зарабатывания денег. Мы гарантируем fair play и защищенные платежи. Не упускайте возможность попробовать свои силы в наших играх и стать победителем. Начните играть сейчас и наслаждайтесь азартными играми в онлайн-казино Pin Up Com.

Почему вы должны выбрать Pin Up Com для онлайн-казино?

Почему вы должны выбрать Pin Up Com для онлайн-казино? Во-первых, это надёжный и проверенный ресурс с широким ассортиментом игровых автоматов и игр с живыми дилерами. Во-вторых, у Pin Up Com есть лицензия на проведение игровых действий, что подтверждает законность и безопасность платформы. В-третьих, здесь доступны удобные методы депозита и withdrawa, в том числе через популярные в Узбекистане платёжные системы. Кроме того, Pin Up Com предлагает выгодные бонусы и акции для новых и активных игроков. Наконец, у пользователей есть возможность контактировать с круглосуточной поддержкой в случае возникновения вопросов или проблем. Выбирая Pin Up Com, вы выбираете надежное и удобное решение для онлайн-казино.

Начните играть в онлайн-казино Pin Up Com прямо сейчас!

Как начнет играть в онлайн-казино Pin Up Com в Узбекистане?

Чтобы начать играть в онлайн-казино Pin Up Com в Узбекистане, сначала необходимо создать учётную запись на официальном сайте. После регистрации вам необходимо воспользоваться бонусами для новых игроков, чтобы увеличить свои шансы на выигрыш. Затем, выберите игру, которая вам интересна, и начните играть. Pin Up Com предлагает широкий выбор игр, включая слоты, рулетку, poker и многие другие. Не забудьте установить ограничения на ваши ставки, чтобы избежать неконтролируемых расходов. Pin Up Com также предлагает мобильную версию сайта, позволяющую играть в любое время и в любом месте. Наслаждайтесь игрой и желаем вам удачи!

Лучшие игровые автоматы в онлайн-казино Pin Up Com

Вы ищите лучшие игровые автоматы в онлайн-казино Pin Up Com для игроков из Узбекистана? Мы рекомендуем опробовать следующие слоты:
1. Book of Dead – приключенческая тема и возможность выиграть крупную сумму;
2. Starburst – классический слот с яркой графикой и удобным интерфейсом;
3. Gonzo’s Quest – увлекательное путешествие в древний мир с уникальной функцией avalanche;
4. Mega Moolah – прогрессивный слот с миллионными выигрышами;
5. Immortal Romance – захватывающая история любви и тайны с бонусными раундами;
6. Dead or Alive 2 – продолжение популярного вестерн-слота с лучшими функциями;
7. Fire Joker – простой и яркий слот с возможностью запускать турбо-раунды;
8. Legacy of Egypt – египетская тема и захватывающие бонусные игры.
Все перечисленные выше игровые автоматы доступны на сайте Pin Up Com и предлагают увлекательный и безопасный опыт игры для игроков из Узбекистана.

Начните играть в онлайн-казино Pin Up Com и выиграйте большое!

Начните играть в онлайн-казино Pin Up Com и начните выигрывать сегодня! Мы предлагаем широкий выбор игровых автоматов и настольных игр от ведущих поставщиков. Не пропустите возможность завоевать крупный выигрыш, используя наши бонусы и акции. В Pin Up Com вы найдете безопасную и увлекательную игровую платформу, подходящую для игроков из Узбекистана. Начните играть сейчас и станьте нашим победителем!

Онлайн-казино Pin Up Com: надежное и удобное место для азартных игр

Вы ищите надежное и удобное онлайн-казино в Узбекистане? Не ищите дальше, чем Онлайн-казино Pin Up Com. Здесь вы найдете надежное и безопасное окружение для азартных игр, широкий выбор игровых автоматов и классических казино-игр. Кроме того, наше казино удобно в использовании и доступно на компьютере и на мобильных устройствах. Вы можете играть в любое время и с любого места, получая круглосуточную поддержку клиентов и защищенные платежи. Присоединяйтесь к тысячам игроков, которые уже выбрали наше онлайн-казино, и начните играть сегодня!

Отзыв от Алексея, 32 https://pin-up-casino-uz1.top/ года:

Начните играть в онлайн-казино Pin Up Com прямо сейчас! Я не могу рекомендовать это достаточно высоко. У них обширный выбор игр, отличная поддержка клиентов и удобные оплаты.

Отзыв от Софьи, 28 лет:

Играл в онлайн-казино Pin Up Com несколько недель уже. Доволен надежностью платежей и разнообразием игровых автоматов. Рекомендую для любителей азартных игр.

Отзыв от Ивана, 35 лет:

Играл в онлайн-казино Pin Up Com. Впечатлений не осталось ни особых, ни негативных. Всё просто и понятно. Играю по-прежнему, но ничего особенного не замечаю.

Отзыв от Анны, 29 лет:

Играла в онлайн-казино Pin Up Com. Впечатлений не осталось ни особых, ни негативных. Всё просто и понятно. Играю по-прежнему, но ничего особенного не замечаю.

Отзыв от Максима, 25 лет:

Пробовал играть в онлайн-казино Pin Up Com. Ничего особенного не заметил. Все как в любом другом казино. Может попробовать еще кто-то.

Начните играть в онлайн-казино Pin Up Com прямо сейчас! Это безопасный и надежный способ развлечься и попытать свою удачу.

Нет необходимости в предварительном скачивании программного обеспечения или регистрации учетной записи. Просто перейдите на наш сайт и начните играть в наши увлекательные игровые автоматы и другие казино-игры.

Pin Up Com предлагает широкий выбор игр, включая классические игровые автоматы, видео-слоты, карточные игры и многое другое. У нас есть игры от ведущих производителей, таких как NetEnt, Microgaming и Playtech.

Начните играть сейчас и воспользуйтесь нашими бонусами и промо-кодами, чтобы увеличить свои шансы на победу. Мы предлагаем бесплатные вращения, бонусы за первое депозитное взнос и многое другое.

Войдите в онлайн-казино Pin Up Com сегодня и начните играть в наши увлекательные игры. Мы гарантируем честную игру, быстрые выплаты и круглосуточную поддержку клиентов.

Design and Develop by Ovatheme